Date : 26 septembre, 25 octobre 1993
Protection : DISQUETTE CLEF + MOT DE PASSE
Programme : X-ROCK
Outils : SOFT-ICE V2.50
Fichier : ? et TITLC.EXE
Temps pass� : 5 minutes
Soci�t� : SOFT WORLD
Divers : Crypt�
Origine : JKT
Num�ro : 228
Un jeu qui comporte deux protections: Disquette clef et mot de passe.
Ci-dessous comment enlever la protection disquette clef.
En me triggant sur l'INT13 il faut comme d'habitude faire du F11
jusqu'� ce que l'on allume le lecteur de disquette. Toutes les
autres r�jurgences de l'INT13 concernent le disque dur. C'est la
m�me INT qui fait les deux. Il faut le savoir sinon on risque de
perdre son temps � d�bugger son propre disque dur.
Apr�s la seconde INT13 de la disquette le contenu de AX est compar�
� 6DF7. Si oui c'est OK sinon on affiche le m�chant message.
CS:IP CD13 INT 13
:
: <������ͻ
: �
CS:01EF 81FEFF02 CMP SI,02FF � ; Boucle et incr. SI
CS:01F3 75F5 JZ >������ͼ
CS:01F5 3DF76D CMP AX,6DF7 ; Ici le test fatidique...
CS:01F8 7507 JZ Suite si OK. � NOPer ou � forcer.
Le bl�me c'est que je pensais avoir un autre probl�me ailleurs car il
( le soft ) n'arr�tait pas de beeper toutes les secondes. Je pensais que
c'�tait d� en partie � SOFT-ICE mais je n'en �tais pas s�r. C'est la que
je d�cidais de faire la modif et de lancer le jeu sans SOFT-ICE.
Mais aucune trace de la routine INT 13 avec la comparaison du contenu
de AX avec 6DF7. Je v�rifie tous mes EXE, seul deux fichiers MUSIC et
MUSIC1 sont LZEXEt�s. MUSIC se d�comprime mais pas MUSIC1. Je regarde
par hazard la fin du fichier et je trouve la phrase: THIS PROGRAM WAS
WRITTEN BY .... IN SOFIA. Notre cher Darki ! le voila de retour.
Une fois d�contamin� par CLEAN je v�rifie l'�tat de mon dur, mais
aucune infection ne semble s'y �tre propag�e. J'UNLZEXEtte le fichier
et remarque que sa taille est semblable au fichier MUSIC. Donc je
pense que ce n'�tait qu'une copie du premier que quelqu'un a infect�.
Ce qui explique que le jeu ne l'a pas utilis� et la non-infection de
mon hard.
Donc aucune trace de ma chaine alors que tous les fichiers sont
maintenant en clair.
Certainement que la chaine est crypt�e. Dans ce cas il faut mettre
SOFT-ICE en point d'arr�t en �criture sur le mot/octet cherch� et
trouver la routine qui crypte. Cel� peut-�tre tr�s long car plusieurs
routines peuvent se superposer, je ne te cause pas alors de la
modification �ventuelle des dits octets car bien souvent le caract�re
n est XOR� par le caract�re n-1 ou n+1. Bonjour la bidouille.
En examinant le fichier VXROCK.EXE de 3k qui lance le jeu, je remarque
sa densit� de compactage avec aucune phrase et/ou mot en clair. Ce
fichier est scrambled c'est sur. Et pourquoi serait-il scrambled ?
Pour cacher quelque chose mon enfant r�pondit M�re Grand � ...
Non. Ca c'est une autre histoire.
Je tape LDR VXROCK.EXE et je regarde.
D�s le d�but des PUSH AX, PUSH BX et RETF apparaissent. C'est du
classique pour faire perdre les p�dales � SOURCER. Je d�cide de faire
du F10 boucle apr�s boucle pour arriver au code sain.
Au bout d'un moment je tombe sur une boucle qui charge un octet
point� par SI dans AH, le XOR avec 24, puis le renvoie par DI.
A la fin de la boucle on a de nouveau un PUSH, PUSH et RETF. Et la
on y est. C'est le bon code. Et que trouves-je ? Mon INT13 suivi du
test de AX !
OK. Je fais un lanceur car je ne vais pas m'arracher les cheveux et
faire du reverse engeenering pour inverser le cryptage. J'ai d�j� donn�
� ce jeu l�.
Et le lanceur ne d�marre pas du premier coup car j'ai essay� de le
trigger sur l'INT 1C. Poisse. Il n'y a pas d'INT soft appell�e dans
ces 3k de programme en dehors de l'INT 13. Aller ! j'essaye sur
l'INT 13. Et c'est OK.
Le jeu fonctionne sans BEEPer. Il ne reste que la protection mot de
passe � faire sauter. Mais ca je pense que c'est peu de chose.
Au fait pour quitter c'est la touche F1.
Ci-dessous les codes de couleur traduit de l'INDONESIEN en Frenchie.
1 = BLANC, 2 = ROUGE, 3 = BLEU, 4 = VIOLET, 5 = VERT.
Si on tape le mauvais code le jeu semble fonctionner mais il se
plantera tot ou tard avec plein d'injures sur l'�cran.
Ci-dessous les valeurs pour le lanceur:
; PATCH POUR LE PROGRAMME XROCK
;
;******************************************************************************
; ZONE A INITIALISER
adr_ip1 equ 01f8h ; Adresse dont le contenu est � modifier.
anc_val equ 0775h ; Valeur d'origine � rechercher, invers�e.
nouv_val equ 9090h ; Nouvelle valeur (la modif).
INT_DET equ 13h ; Le num�ro de l'INT que l'on veut utiliser.
;******************************************************************************
25/10/1993
O� je d�cide de jeter un oeil sur la protection mot de passe.
Le programme semblait �tre g�n� par la pr�sence de SOFT-ICE, et en
fait tout s'explique maintenant puisque je remarque l'utilisation des
INT 1 et 2 ! Le r�sultat est un jeu ralenti au maximum entrecoup� par
des beep-beep incessant.
La v�rification du code est simple et se fait en CS:119A.
CS=1C66
CS:1193 A1F213 MOV AX,[13F2]
CS:1196 3B06F813 CMP AX,[13F8]
CS:119A 7526 JNZ 11C2 ; ON SAUTE APRES SI PAS OK.
CS:119C BF00A0 MOV DI,A000
En pratique il suffit de remplacer le JNZ par des NOP ou de sauter
avec un offset �gal � zero: JMP 119C c.a.d. EB00. C'est cette dreni�re
solution que j'ai adopt�e.
Avec PCTOOLS chercher dans le fichier TITLC.EXE la chaine:
3B06F8137526 et remplacer 7526 par EB00.
Cette chaine est en clair contrairement � la protection disquette.
Mais j'ai l'impression que j'ai persu le son dans l'histoire.
A v�rifier...
FREDDY
|